package com.imc.platform.base.role.service;

import com.github.pagehelper.PageInfo;
import com.imc.platform.base.role.pojo.Role;
import com.imc.platform.base.user.pojo.User;

import java.util.List;
import java.util.Map;

/**
*类描述：角色管理
*开发者：QY
*创建时间：2018/8/21 10:14
**/
public interface IRoleService {
    /**
    *QY 2018/8/21 10:15
    *方法描述：查询所有角色信息
    **/
    PageInfo<Role> queryRoleList(int pageNum, int pageSize);

    /**
    *QY 2018/8/21 10:15
    *方法描述：改变角状态
    **/
    int updateState(String state,String roleId);

    /**
    *QY 2018/8/21 10:16
    *方法描述：查询用户所有信息
    **/
    PageInfo<User> queryUserList(int pageNum, int pageSize,String roleId);

    /**
    *QY 2018/8/21 10:19
    *方法描述：根据角色id下的所有成员
    **/
    PageInfo<User> queryUserListByRoleId(int pageNum, int pageSize,String roleId);

    /**
    *QY 2018/8/21 20:11
    *方法描述：批量插入角色成员
    **/
    int insertRoleMember(List<String> memberList,String roleId);

    /**
     *QY 2018/8/21 20:11
     *方法描述：批量删除角色成员
     **/
    int delRoleMember(List<String> memberList,String roleId);

    /**
    *QY 2018/8/29 14:44
    *方法描述：删除角色
    **/
    int delRole(String roleId);

    /**
    *QY 2018/8/27 15:12
    *方法描述：根據用戶id以及角色id刪除關聯表
    **/
    int delRoleUserById(String roleId,String userId);

    /**
    *QY 2018/8/30 15:48
    *方法描述：根据条件查询用户信息
    **/
    PageInfo<User> queryUserByUserName(int pageNum, int pageSize,String selectParms,String orgName,String duty);

    /**
    *QY 2018/8/30 15:48
    *方法描述：根据条件查询已选择的成员
    **/
    PageInfo<User> queryUserBySelectUserName(int pageNum, int pageSize,String selectParms,String roleId);

    /**
    *QY 2018/8/30 15:48
    *方法描述：校验角色名称是否可用
    **/
    int queryRoleNameByText(String roleName);

    /**
    *QY 2018/8/30 15:49
    *方法描述：添加角色
    **/
    int addRole(Map<String,Object>parms);

    int addRoleMenu(List<Map<String,Object>>parmsList,String roleId);

    String queryRoleIdByUserId(String userId);
}
